<?php
/**
 * Permite modificar y eliminar zonas de estacionamto SIMERT
 * @package simertweb 
 * @subpackage controllers  
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com> 
 * @version 1.0 
 */
class Eliminar_zona extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('mpersona');
        $this->load->model('mempleado');
        $this->load->model('mrol');
        $this->load->model('msubcalles');
        $this->load->model('mzona');
        $this->load->model('mcalles');
        $this->load->model('acceso');
        $this->load->model('reportes');
    }

    /**
     * Muestra las zonas de estacionamiento SIMERT
     * @param type $data2
     */
    function index($data2 = "") {
        if ($this->acceso->sesion() == 1) {
            $array1 = $this->mcalles->callesLista();
            $array2 = $this->mzona->listarZonas();
            $data1['listacalles'] = array_merge($array2, array_merge($array1));
            $datax['var'] = $data2;
            $data['contenido'] = $this->msubcalles->cargarSubcalles();
            $this->load->view('includes/menu_izquierdo', $data1);
            $this->load->view('includes/cabecera', $datax);
            $this->load->view('eliminar_zona', $data);
            $this->load->view('includes/footer');
        } else {
            $this->load->view('autenticacion');
        }
    }

    /**
     * Muestra por subcalle los datos de una zona de estacionemiento
     */
    function cargar_subcalle() {
        if ($this->acceso->sesion() == 1) {
            $this->form_validation->set_rules('modificar', ' ', 'required');
            if ($this->form_validation->run() === TRUE) {
                $array1 = $this->mcalles->callesLista();
                $array2 = $this->mzona->listartodasZonas();
                $data1['listacalles'] = array_merge($array2, array_merge($array1));
                $data['modificar'] = $this->msubcalles->obtener_subcalles_zona();
                $this->load->view('includes/menu_izquierdo');
                $this->load->view('includes/cabecera', $data1);
                $this->load->view('eliminar_zona', $data);
                $this->load->view('includes/footer');
            } else {
                $this->index(TRUE);
            }
        } else {
            $this->load->view('autenticacion');
        }
    }

    /**
     * Permite modificar las zonas de eztacionamiento SIMERT
     */
    function modificar() {
        $this->form_validation->set_rules('idSubcalle', ' ', 'required');
        $this->form_validation->set_rules('azules', 'Espacios', 'required|integer|greater_than[1]|less_than[25]');
        $this->form_validation->set_rules('zona', 'Zona', 'required');
        $this->form_validation->set_rules('sec_1', ' ', 'required');
        $this->form_validation->set_rules('sec_2', ' ', 'required');
        $this->form_validation->set_rules('calle', ' ', 'required|callback_subcalles_check|callback_validar_subcalles');
        $this->form_validation->set_rules('orientacion', ' ', 'required');
        $this->form_validation->set_rules('lat_1', ' ', 'required');
        $this->form_validation->set_rules('lon_2', ' ', 'required');
        $this->form_validation->set_rules('lat_2', ' ', 'required');
        $this->form_validation->set_rules('lon_1', ' ', 'required');

        if ($this->form_validation->run() == TRUE) {
            //llama al metodo para modificar el usuario y almacena en una variable el mensaje
            //que este devuelve
            $this->msubcalles->actualizar_subcalle();
            $data['message'] = "";
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('includes/mensaje_exito', $data);
            $this->load->view('includes/footer');
        } else {
            $data2 = TRUE;
            $this->index($data2);
        }
    }

    /**
     * Permite eliminar una zona de estacionamiento SIMERT
     */
    function eliminar() {
        if ($this->acceso->sesion() == 1) {
            $this->msubcalles->eliminar_subcalle();
            $data['message'] = "/simertweb/eliminar_zona";
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('includes/mensaje_exito', $data);
            $this->load->view('includes/footer');
        } else {
            $data2 = FALSE;
            $this->index($data2);
        }
    }

    /**
     * Permite generar un documento .pdf que contiene la lista de zonas de
     * estacionamiento SIMERT
     */
    function generar_pdf() {
        if ($this->acceso->sesion() == 1) {
            $cabecera = array(
                'ZONA',
                'PRINCIPAL',
                'SECUNDARIA1',
                'SECUNDARIA2',
                'AMARILLOS',
                'AZULES',
                'HABILITADO'
            );

            $query = array_reverse($this->msubcalles->cargarSubcalles());
            $titulo = '<h1><B>LISTA DE ZONAS SIMERT</B></h1><BR>';
            date_default_timezone_set('America/Guayaquil');
            $fecha = date('Y-m-d');
            $hora = date('H:i:s');
            $contenido = array();
            for ($i = 0; $i < count($query); $i++) {
                if($query[$i]['uso']==1){
                    $uso='SI';
                }else{
                    $uso='NO';
                }
                $data = array(
                    $query[$i]['zona'],
                    $query[$i]['principal'],
                    $query[$i]['sec1'],
                    $query[$i]['sec2'],
                    $query[$i]['amarillos'],
                    $query[$i]['azules'],
                    $uso,
                );
                array_push($contenido, $data);
//            $this->reportes->ColoredTable($cabecera, $query);
            }
            $this->reportes->pdf($cabecera, $contenido, $titulo, 'FECHA DE REPORTE: ' . $fecha . '(' . $hora . ')<BR>');
        } else {
            $data2 = FALSE;
            $this->index($data2);
        }
    }

    /**
     * Valida que la subcalle no se duplique
     * @return boolean
     */
    function validar_subcalles() {
        if (is_bool($this->msubcalles->obtener_idSubcalle2($this->mcalles->indice($_POST['calle']), $this->mcalles->indice($_POST['sec_1']), $this->mcalles->indice($_POST['sec_2']), $_POST['orientacion']))) {
            return TRUE;
        } else {
            $this->form_validation->set_message('validar_subcalles', '<p style="color: red">La subcalle ya existe en una zona</p>');
            return FALSE;
        }
    }

    /**
     * Valida que las calles que componen la subcalle sean distitan
     * @return boolean
     */
    function subcalles_check() {
        if ($_POST['calle'] == $_POST['sec_1'] || $_POST['calle'] == $_POST['sec_2'] || $_POST['sec_1'] == $_POST['sec_2']) {
            $this->form_validation->set_message('subcalles_check', '<p style="color: red">Las calles ingresadas deben ser distintas</p>');
            return FALSE;
        } else {
            return TRUE;
        }
    }

    /**
     * Valida las coordendas de cada subcalle
     * @param type $str_in es cada una de las coordenadas
     * @return boolean
     */
    function validar_coordenadas($str_in = '') {
        if (is_bool($str_in)) {
            return TRUE;
        } else {
            $this->form_validation->set_message('validar_coordenadas', '<p style="color: red">El campo %s acepta decimales.</p>');
            return FALSE;
        }
    }

}

?>
